package cn.com.cifi.mars.web.action.projectConsole;

import java.util.List;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

import cn.com.cifi.mars.bean.dto.DictionaryDto;
import cn.com.cifi.mars.bean.vo.common.CommonVo;
import cn.com.cifi.mars.bean.vo.price.PriceVersionListVO;
import cn.com.cifi.mars.bean.vo.sys.rsp.StagesVo;
import cn.com.cifi.mars.bean.vo.workBench.ProjectNewDynamicVo;
import cn.com.cifi.mars.bean.vo.workBench.ProjectToDoVo;
import cn.com.cifi.mars.bean.vo.workBench.SysToDoVo;
import cn.com.cifi.mars.bean.vo.workBench.ToDoTypeVo;
import cn.com.cifi.mars.common.bean.R;
import cn.com.cifi.mars.common.constants.VersionConstant;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;

/**
 * 工作台
 * @author Li
 *
 */
@Api(tags = "项目工作台API")
@RequestMapping("/${spring.data.rest.base-path}/{apiVersion}/workBench")
public interface IWorkBenchController {

	@ApiOperation(value = "项目待办提醒分页", notes = "项目待办提醒分页")
    @GetMapping(value = "porjectToDoPage")
    public R<ProjectToDoVo> getPorjectToDoPage(
            @ApiParam(value = "接口版本", required = true, defaultValue = VersionConstant.V1) @PathVariable(value = "apiVersion") String apiVersion,
            @ApiParam(value = "当前第几页", required = true, defaultValue = "1") @RequestParam(value = "current") String current,
            @ApiParam(value = "每页条数", required = true, defaultValue = "2") @RequestParam(value = "pageSize") String pageSize,
            @ApiParam(value = "项目id", required = true) @RequestParam(name = "projectId") String projectId,
            @ApiParam(value = "分期id", required = false) @RequestParam(name = "stagesId", defaultValue = "") String stagesId,
            @ApiParam(value = "类型id", required = false) @RequestParam(name = "typeId", defaultValue = "") String typeId,
            @ApiParam(value = "处理状态", required = false) @RequestParam(name = "state", defaultValue = "") String state
    		);

	
	@ApiOperation(value = "系统待办提醒分页", notes = "系统待办提醒分页")
    @GetMapping(value = "sysToDoPage")
    public R<SysToDoVo> getSysToDoPage(
    		 @ApiParam(value = "接口版本", required = true, defaultValue = VersionConstant.V1) @PathVariable(value = "apiVersion") String apiVersion,
             @ApiParam(value = "当前第几页", required = true, defaultValue = "1") @RequestParam(value = "current") String current,
             @ApiParam(value = "每页条数", required = true, defaultValue = "2") @RequestParam(value = "pageSize") String pageSize,
             @ApiParam(value = "项目名称或者项目编码", required = false) @RequestParam(name = "nameOrCode", defaultValue = "") String nameOrCode,
             @ApiParam(value = "类型id", required = false) @RequestParam(name = "typeId", defaultValue = "") String typeId,
             @ApiParam(value = "处理状态", required = false) @RequestParam(name = "state", defaultValue = "") String state
     		);
	
	@ApiOperation(value = "项目最新动态", notes = "项目最新动态")
    @GetMapping(value = "projectNewDynamicPage")
    public R<ProjectNewDynamicVo> getProjectNewDynamicPage(
            @ApiParam(value = "接口版本", required = true, defaultValue = VersionConstant.V1) @PathVariable(value = "apiVersion") String apiVersion,
            @ApiParam(value = "当前第几页", required = true, defaultValue = "1") @RequestParam(value = "current") String current,
            @ApiParam(value = "每页条数", required = true, defaultValue = "2") @RequestParam(value = "pageSize") String pageSize,
            @ApiParam(value = "项目id", required = true) @RequestParam(name = "projectId") String projectId,
            @ApiParam(value = "分期id", required = false) @RequestParam(name = "stagesId", defaultValue = "") String stagesId,
            @ApiParam(value = "事件", required = false) @RequestParam(name = "eventId", defaultValue = "") String eventId,
            @ApiParam(value = "业务类型", required = false) @RequestParam(name = "moduleTypeId", defaultValue = "") String moduleTypeId,
            @ApiParam(value = "版本类型", required = false) @RequestParam(name = "versionType", defaultValue = "") String versionType,
            @ApiParam(value = "操作人", required = false) @RequestParam(name = "operationBy", defaultValue = "") String operationBy,
            @ApiParam(value = "开始时间", required = false) @RequestParam(name = "begin", defaultValue = "") String begin,
            @ApiParam(value = "结束时间", required = false) @RequestParam(name = "end", defaultValue = "") String end
    		);
	
	
	@ApiOperation(value = "显示分期(下拉框)", notes = "显示分期(下拉框)")
	@GetMapping(value = "stages")
	public R<List<StagesVo>> getStages(
			@ApiParam(value = "接口版本", required = true, defaultValue = VersionConstant.V1) @PathVariable(value = "apiVersion") String apiVersion,
			@ApiParam(value = "项目id", required = true) @RequestParam(name = "projectId", defaultValue = "") String projectId);
	
	@ApiOperation(value = "显示门户待办类型(下拉框)", notes = "显示门户待办类型(下拉框)")
	@GetMapping(value = "todoType")
	public R<List<CommonVo>> getTodoType(
			@ApiParam(value = "接口版本", required = true, defaultValue = VersionConstant.V1) @PathVariable(value = "apiVersion") String apiVersion
			);
	
	@ApiOperation(value = "事件(下拉框)", notes = "事件(下拉框)")
	@GetMapping(value = "event")
	public R<List<CommonVo>> getEvent(
			@ApiParam(value = "接口版本", required = true, defaultValue = VersionConstant.V1) @PathVariable(value = "apiVersion") String apiVersion
			);
	
	@ApiOperation(value = "业务类型(下拉框)", notes = "业务类型(下拉框)")
	@GetMapping(value = "businessType")
	public R<List<CommonVo>> getBusinessType(
			@ApiParam(value = "接口版本", required = true, defaultValue = VersionConstant.V1) @PathVariable(value = "apiVersion") String apiVersion
			);
	
	@ApiOperation(value = "版本类型(下拉框)", notes = "版本类型(下拉框)")
	@GetMapping(value = "versionType")
	public R<List<CommonVo>> getVersionType(
			@ApiParam(value = "接口版本", required = true, defaultValue = VersionConstant.V1) @PathVariable(value = "apiVersion") String apiVersion
			);
	
	@ApiOperation(value = "操作人(下拉框)", notes = "操作人(下拉框)")
	@GetMapping(value = "operationBy")
	public R<List<CommonVo>> getOperationBy(
			@ApiParam(value = "接口版本", required = true, defaultValue = VersionConstant.V1) @PathVariable(value = "apiVersion") String apiVersion,
			@ApiParam(value = "项目id", required = true) @RequestParam(name = "projectId", defaultValue = "") String projectId
			);
}
